package day15;

import java.util.Objects;

public class hw5_2AdvancedString {


// 我们创建一个新类，它持有一个String的引用

    private final String originalString; // 组合：包含一个String对象

    // 构造函数
    public hw5_2AdvancedString(String s) {
        this.originalString = Objects.requireNonNull(s, "字符串不能为null");
    }

    // 提供获取原始字符串的方法
    public String getString() {
        return originalString;
    }

    // 添加我们想要的新功能
    public String reverse() {
        return new StringBuilder(originalString).reverse().toString();
    }

    // 可以重写一些方法，以提供更丰富的行为
    @Override
    public String toString() {
        return "hw5_2AdvancedString[content=" + originalString + "]";
    }

    // 为了让类更实用，可以重写equals和hashCode
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        hw5_2AdvancedString that = (hw5_2AdvancedString) o;
        return Objects.equals(originalString, that.originalString);
    }

    @Override
    public int hashCode() {
        return Objects.hash(originalString);
    }
}





